package algoritmos;

import java.util.List;

import beans.Cliente;
import beans.Concessionaria;

/**
 * Classe abstrata para tratar a ordenação dos dados
 * @author fabio
 *
 */
public abstract class Join {
	protected List<Cliente> clientes;
	protected List<Concessionaria> concessionaria;
	
	public Join(List<Cliente> clientes, List<Concessionaria> concessionaria){
		this.clientes = clientes;
		this.concessionaria = concessionaria;
	}
	
	/**
	 * Executa a junção
	 * @return Matriz para ser aplicada num JTableModel
	 */
	public abstract String[][] orderna();
	
	/**
	 * Gera o TableModel à partir de matriz de listas
	 * @param matrix Matriz de listas
	 * @return Matriz escalar de String
	 */
	protected String[][] parseToMatrix(List<List<String>> matrix){
		String[][] result = new String[matrix.size()][matrix.get(0).size()];
		
		int line = 0;
		for(List<String> linha: matrix){
			for(int i=0, max = linha.size(); i<max;i++){
				result[line][i] = linha.get(i);
			}			
			line++;
		}
		
		return result;
	}
}
